package com.alibaba.middleware.hsf.hessian;

import com.alibaba.middleware.hsf.Data;
import com.alibaba.middleware.hsf.guide.api.model.OrderModel;

import com.taobao.hsf.com.caucho.hessian.io.AbstractHessianOutput;
import com.taobao.hsf.com.caucho.hessian.io.Hessian2Output;

import org.openjdk.jmh.annotations.Benchmark;
import org.openjdk.jmh.annotations.BenchmarkMode;
import org.openjdk.jmh.annotations.Mode;
import org.openjdk.jmh.annotations.Scope;
import org.openjdk.jmh.annotations.Setup;
import org.openjdk.jmh.annotations.State;

import java.io.ByteArrayOutputStream;
import java.io.IOException;

/**
 * @author weipeng2k 2017年12月27日 上午11:06:08
 */
@State(Scope.Benchmark)
public class SerialPerf {

    OrderModel orderModel;

    @Setup
    public void init() {
        orderModel = Data.gen();
    }

    @Benchmark
    @BenchmarkMode(Mode.Throughput)
    public void serial() throws IOException {
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        AbstractHessianOutput out = new Hessian2Output(baos);
        out.writeObject(orderModel);
        out.flush();
    }
}
